{"version":3,"sources":["App.module.css","utility/bmiManager.ts","components/MembersList/MembersList.tsx","components/BMIChart/BMIChart.tsx","utility/dateManager.ts","components/AddModal/AddModal.tsx","App.tsx","serviceWorker.ts","index.tsx"],"names":["module","exports","App","AddButton","isoBmiValues","age","normal","overweight","obeseClassI","obeseClassII","Object","classCallCheck","this","BMIManager","isoBmiValuesGirls","isoBmiValuesBoys","calculateBMI","height","weight","bmi","Math","round","bmiDescription","gender","index","length","isoBmiValue","desc","descColor","getGraphData","max","size","data","i","overWeight","push","obeseClassIII","membersList","props","react_default","a","createElement","Table","bordered","hover","style","width","marginTop","backgroundColor","color","members","map","item","key","onClick","onDelete","name","bmiManager","BMIChart","_getMaxMinValue","min","ceil","floor","yTicks","getMaxMinValue","es6","margin","top","right","left","bottom","id","x1","y1","x2","y2","offset","stopColor","stopOpacity","dataKey","interval","value","position","domain","type","ticks","stroke","fillOpacity","fill","x","y","r","strokeWidth","DateManager","calculateAge","dob","today","Date","birthDate","getFullYear","month","getMonth","getDate","AddModal","_this","possibleConstructorReturn","getPrototypeOf","call","onChangeHandler","event","input","setState","target","replace","onAddHandler","parseFloat","state","validateInputs","onSubmit","dateManager","error","trim","isNaN","maxDate","setFullYear","_this2","Modal","show","onHide","onClose","Alert","variant","Header","closeButton","background","Title","Body","InputGroup","className","FormControl","placeholder","onChange","marginBottom","ButtonGroup","Button","entry_default","date","minDate","showLeadingZeros","clearIcon","Append","Text","Footer","Component","showAddModal","closeAddModalHandler","addMemberHandler","member","newMembers","deleteMemberHandler","confirmAlert","title","concat","message","buttons","label","splice","classes","components_AddModal_AddModal","MembersList","components_BMIChart_BMIChart","textAlign","Boolean","window","location","hostname","match","ReactDOM","render","src_App","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"6EACAA,EAAAC,QAAA,CAAkBC,IAAA,iBAAAC,UAAA,+RCOZC,EAMF,SAAAA,EAAYC,EAAaC,EAAeC,EAAoBC,EAAqBC,GAAuBC,OAAAC,EAAA,EAAAD,CAAAE,KAAAR,GAAAQ,KALxGP,SAKuG,EAAAO,KAJvGN,YAIuG,EAAAM,KAHvGL,gBAGuG,EAAAK,KAFvGJ,iBAEuG,EAAAI,KADvGH,kBACuG,EACnGG,KAAKP,IAAMA,EACXO,KAAKN,OAASA,EACdM,KAAKL,WAAaA,EAClBK,KAAKJ,YAAcA,EACnBI,KAAKH,aAAeA,GAIPI,sCACDC,kBAAoB,CAChC,IAAIV,EAAa,EAAE,GAAI,KAAK,KAAK,MACjC,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,GAAI,KAAK,KAAK,MACjC,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,GAAI,KAAK,KAAK,MACjC,IAAIA,EAAa,EAAE,KAAM,GAAG,KAAK,MACjC,IAAIA,EAAa,GAAG,KAAM,KAAK,GAAG,MAClC,IAAIA,EAAa,GAAG,GAAI,KAAK,KAAK,MAClC,IAAIA,EAAa,GAAG,KAAM,KAAK,KAAK,MACpC,IAAIA,EAAa,GAAG,KAAM,KAAK,KAAK,MACpC,IAAIA,EAAa,GAAG,KAAM,KAAK,KAAK,MACpC,IAAIA,EAAa,GAAG,KAAM,KAAK,GAAG,MAClC,IAAIA,EAAa,GAAG,KAAM,KAAK,KAAK,MACpC,IAAIA,EAAa,GAAG,KAAM,KAAK,KAAK,MACpC,IAAIA,EAAa,GAAG,KAAM,GAAG,GAAG,KAlBnBS,EAoBDE,iBAAmB,CAC/B,IAAIX,EAAa,EAAE,GAAI,KAAK,GAAG,MAC/B,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,KAAM,KAAK,KAAK,MACnC,IAAIA,EAAa,EAAE,KAAM,GAAG,KAAK,MACjC,IAAIA,EAAa,GAAG,KAAM,KAAK,GAAG,MAClC,IAAIA,EAAa,GAAG,GAAI,KAAK,KAAK,IAClC,IAAIA,EAAa,GAAG,KAAM,KAAK,GAAG,MAClC,IAAIA,EAAa,GAAG,KAAM,KAAK,KAAK,MACpC,IAAIA,EAAa,GAAG,KAAM,KAAK,KAAK,IACpC,IAAIA,EAAa,GAAG,GAAI,KAAK,KAAK,MAClC,IAAIA,EAAa,GAAG,KAAM,KAAK,KAAK,IACpC,IAAIA,EAAa,GAAG,GAAI,KAAK,KAAK,MAClC,IAAIA,EAAa,GAAG,KAAM,GAAG,GAAG,KArCnBS,EAwCVG,aAAe,SAACC,EAAgBC,GAEnC,IAAIC,EAAMD,IADVD,GAAkB,KACWA,GAC7B,OAAOG,KAAKC,MAAY,GAANF,GAAY,IA3CjBN,EA8CVS,eAAiB,SAACH,EAAaI,EAAgBlB,GAClD,IAAImB,EAASnB,EAAM,EACfA,EAAM,GACNmB,EAAQX,EAAWE,iBAAiBU,OAAS,EACtCpB,EAAM,IACbmB,EAAQ,GAEZ,IAAIE,EAAyB,SAAXH,EAAoBV,EAAWE,iBAAiBS,GAASX,EAAWC,kBAAkBU,GACxG,OAAIL,GAAOO,EAAYjB,aAAqB,CAACkB,KAAM,iBAAkBC,UAAW,WACvET,GAAOO,EAAYlB,YAAoB,CAACmB,KAAM,QAASC,UAAW,WAClET,GAAOO,EAAYnB,WAAmB,CAACoB,KAAM,WAAYC,UAAW,WACpET,GAAOO,EAAYpB,OAAe,CAACqB,KAAM,SAAUC,UAAW,WAC3D,CAACD,KAAM,YAAaC,UAAW,YA1D9Bf,EA6DVgB,aAAe,SAACC,GAGnB,IAFA,IAAMC,EAAOlB,EAAWE,iBAAiBU,OACrCO,EAAO,GACFC,EAAI,EAAGA,EAAIF,EAAME,IAAK,CAC3B,IAAI3B,GAAWO,EAAWE,iBAAiBkB,GAAG3B,OAASO,EAAWC,kBAAkBmB,GAAG3B,QAAQ,EAC3F4B,GAAerB,EAAWE,iBAAiBkB,GAAG1B,WAAaM,EAAWC,kBAAkBmB,GAAG1B,YAAY,EACvGC,GAAgBK,EAAWE,iBAAiBkB,GAAGzB,YAAcK,EAAWC,kBAAkBmB,GAAGzB,aAAa,EAC1GC,GAAiBI,EAAWE,iBAAiBkB,GAAGxB,aAAeI,EAAWC,kBAAkBmB,GAAGxB,cAAc,EACjHuB,EAAKG,KAAK,CACN9B,IAAKQ,EAAWE,iBAAiBkB,GAAG5B,IACpCC,OAAQc,KAAKC,MAAe,GAATf,GAAe,GAClCC,WAAY,CAACa,KAAKC,MAAe,GAATf,GAAe,GAAIc,KAAKC,MAAmB,GAAba,GAAmB,IACzE1B,YAAa,CAACY,KAAKC,MAAmB,GAAba,GAAmB,GAAId,KAAKC,MAAoB,GAAdb,GAAoB,IAC/EC,aAAc,CAACW,KAAKC,MAAoB,GAAdb,GAAoB,GAAIY,KAAKC,MAAqB,GAAfZ,GAAqB,IAClF2B,cAAe,CAAChB,KAAKC,MAAqB,GAAfZ,GAAqB,GAAIW,KAAKC,MAAY,GAANS,GAAY,MAGnF,OAAOE,GC5Ff,IAiCeK,EAjCK,SAACC,GACnB,OACIC,EAAAC,EAAAC,cAACC,EAAA,EAAD,CAAOC,UAAQ,EAACC,OAAK,EAACb,KAAK,KAAKc,MAAO,CAACC,MAAO,MAAOC,UAAW,SAC7DR,EAAAC,EAAAC,cAAA,aACIF,EAAAC,EAAAC,cAAA,MAAII,MAAO,CAACG,gBAAiB,UAAWC,MAAO,UAC3CV,EAAAC,EAAAC,cAAA,kBACAF,EAAAC,EAAAC,cAAA,sBACAF,EAAAC,EAAAC,cAAA,mBACAF,EAAAC,EAAAC,cAAA,sBACAF,EAAAC,EAAAC,cAAA,kBACAF,EAAAC,EAAAC,cAAA,mBAGRF,EAAAC,EAAAC,cAAA,aAEIH,EAAMY,QAAQC,IAAI,SAACC,EAAM5B,GACrB,OACIe,EAAAC,EAAAC,cAAA,MAAIY,IAAK7B,EAAO8B,QAAS,kBAAMhB,EAAMiB,SAAS/B,KAC1Ce,EAAAC,EAAAC,cAAA,UAAKW,EAAKI,MACVjB,EAAAC,EAAAC,cAAA,UAAqB,SAAhBW,EAAK7B,OAAoB,OAAS,SACvCgB,EAAAC,EAAAC,cAAA,UAAKW,EAAK/C,IAAM,UAChBkC,EAAAC,EAAAC,cAAA,UAAKW,EAAKnC,OAAS,OACnBsB,EAAAC,EAAAC,cAAA,UAAKW,EAAKlC,OAAS,OACnBqB,EAAAC,EAAAC,cAAA,MAAII,MAAO,CAACG,gBAAiBS,EAAWnC,eAAe8B,EAAKjC,IAAKiC,EAAK7B,OAAQ6B,EAAK/C,KAAKuB,YAAawB,EAAKjC,mBCyDrHuC,EAtDE,SAACpB,GAA0B,IAAAqB,EAhBrB,SAACT,GAGpB,IAFA,IAAIpB,EAAM,GACN8B,EAAM,EACD3B,EAAI,EAAGA,EAAIiB,EAAQzB,OAAQQ,IAC5BiB,EAAQjB,GAAGd,IAAMW,EAAKA,EAAMV,KAAKyC,KAAKX,EAAQjB,GAAGd,KAC5C+B,EAAQjB,GAAGd,IAAMyC,IAAKA,EAAMxC,KAAK0C,MAAMZ,EAAQjB,GAAGd,MAI/D,IADA,IAAI4C,EAAS,GACJ9B,EAAI2B,EAAK3B,GAAKH,EAAKG,GAAG,EAC3B8B,EAAO5B,KAAKF,GAGhB,MAAO,CAAC2B,MAAK9B,MAAKiC,UAIOC,CAAe1B,EAAMY,SAAzCU,EADmCD,EACnCC,IAAK9B,EAD8B6B,EAC9B7B,IAAKiC,EADyBJ,EACzBI,OACf,OACIxB,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAqBnB,MAAO,MAAO7B,OAAQ,KACvCsB,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAWjC,KAAMyB,EAAW5B,aAAaC,GAC9BoC,OAAQ,CAAEC,IAAK,GAAIC,MAAO,GAAIC,KAAM,EAAGC,OAAQ,KACtD/B,EAAAC,EAAAC,cAAA,YACIF,EAAAC,EAAAC,cAAA,kBAAgB8B,GAAG,cAAcC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,KACrDpC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,KAAKC,UAAU,UAAUC,YAAa,KACnDvC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,MAAMC,UAAU,UAAUC,YAAa,MAExDvC,EAAAC,EAAAC,cAAA,kBAAgB8B,GAAG,kBAAkBC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,KACzDpC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,KAAKC,UAAU,UAAUC,YAAa,KACnDvC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,MAAMC,UAAU,UAAUC,YAAa,MAExDvC,EAAAC,EAAAC,cAAA,kBAAgB8B,GAAG,mBAAmBC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,KAC1DpC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,KAAKC,UAAU,UAAUC,YAAa,KACnDvC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,MAAMC,UAAU,UAAUC,YAAa,MAExDvC,EAAAC,EAAAC,cAAA,kBAAgB8B,GAAG,oBAAoBC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,KAC3DpC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,KAAKC,UAAU,UAAUC,YAAa,KACnDvC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,MAAMC,UAAU,UAAUC,YAAa,MAExDvC,EAAAC,EAAAC,cAAA,kBAAgB8B,GAAG,qBAAqBC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,KAC5DpC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,KAAKC,UAAU,UAAUC,YAAa,KACnDvC,EAAAC,EAAAC,cAAA,QAAMmC,OAAO,MAAMC,UAAU,UAAUC,YAAa,OAI5DvC,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAOc,QAAQ,MAAMC,SAAU,GAC3BzC,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAOgB,MAAO,QAASC,SAAS,YAEpC3C,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAOkB,OAAQ,CAACvB,EAAK9B,GAAMsD,KAAM,SAAUJ,SAAU,EAAGK,MAAOtB,GAC3DxB,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAOgB,MAAO,MAAOC,SAAS,SAElC3C,EAAAC,EAAAC,cAACwB,EAAA,EAAD,MACA1B,EAAAC,EAAAC,cAACwB,EAAA,EAAD,MACA1B,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAMT,KAAK,iBAAiB4B,KAAK,WAAWL,QAAQ,gBAAgBO,OAAO,UAAUC,YAAa,EAAGC,KAAK,6BAC1GjD,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAMT,KAAK,QAAQ4B,KAAK,WAAWL,QAAQ,eAAeO,OAAO,UAAUC,YAAa,EAAGC,KAAK,4BAChGjD,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAMT,KAAK,WAAW4B,KAAK,WAAWL,QAAQ,cAAcO,OAAO,UAAUC,YAAa,EAAGC,KAAK,2BAClGjD,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAMT,KAAK,SAAS4B,KAAK,WAAWL,QAAQ,aAAaO,OAAO,UAAUC,YAAa,EAAGC,KAAK,0BAC/FjD,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAMT,KAAK,YAAY4B,KAAK,WAAWL,QAAQ,SAASO,OAAO,UAAUC,YAAa,EAAGC,KAAK,sBAC7FlD,EAAMY,QAAQC,IAAI,SAACC,EAAc5B,GAC9B,OACIe,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAcZ,IAAK7B,EAAOiE,EAAGrC,EAAK/C,KAAO,GAAK+C,EAAK/C,IAAM,GAAIqF,EAAGtC,EAAKjC,IAAKwE,EAAG,EAAGH,KAAM,QAASF,OAAQ,QAASM,YAAa,GACxHrD,EAAAC,EAAAC,cAACwB,EAAA,EAAD,CAAOgB,MAAO7B,EAAKI,KAAM0B,SAAU9B,EAAK/C,IAAM,EAAI,QAAU,8EChFnFwF,+CACKC,aAAe,SAACC,GACnB,IAAMC,EAAQ,IAAIC,KACZC,EAAYH,EACd1F,EAAM2F,EAAMG,cAAgBD,EAAUC,cACpCC,EAAQJ,EAAMK,WAAaH,EAAUG,WAI3C,OAHID,GAAS,GAAgB,IAAVA,GAAeJ,EAAMM,UAAYJ,EAAUI,YAC1DjG,IAEGA,GAIAwF,QC6JAU,cAjJX,SAAAA,EAAYjE,GAAuB,IAAAkE,EAAA9F,OAAAC,EAAA,EAAAD,CAAAE,KAAA2F,IAC/BC,EAAA9F,OAAA+F,EAAA,EAAA/F,CAAAE,KAAAF,OAAAgG,EAAA,EAAAhG,CAAA6F,GAAAI,KAAA/F,KAAM0B,KAcVsE,gBAAkB,SAACC,EAAYC,GAC3B,OAAQA,GACJ,IAAK,OACDN,EAAKO,SAAS,CAACvD,KAAMqD,EAAMG,OAAO/B,QAClC,MACJ,IAAK,SACDuB,EAAKO,SAAS,CAACxF,OAAQsF,EAAMG,OAAO/B,QACpC,MACJ,IAAK,SACDuB,EAAKO,SAAS,CAAC9F,OAAQ4F,EAAMG,OAAO/B,MAAMgC,QAAQ,KAAK,MACvD,MACJ,IAAK,SACDT,EAAKO,SAAS,CAAC7F,OAAQ2F,EAAMG,OAAO/B,MAAMgC,QAAQ,KAAK,QA3BhCT,EAkCnCU,aAAe,WACX,IAAMjG,EAASkG,WAAWX,EAAKY,MAAMnG,QAC/BC,EAASiG,WAAWX,EAAKY,MAAMlG,QAEjCsF,EAAKa,eAAepG,EAAQC,GAC5BsF,EAAKlE,MAAMgF,SAAS,CAChB9D,KAAMgD,EAAKY,MAAM5D,KACjBjC,OAAQiF,EAAKY,MAAM7F,OACnBlB,IAAKkH,EAAYzB,aAAaU,EAAKY,MAAMrB,KACzC9E,OAAQA,EACRC,OAAQA,EACRC,IAAKsC,EAAWzC,aAAaC,EAAQC,KAGzCsF,EAAKO,SAAS,CAACS,OAAO,KAhDKhB,EAqDnCa,eAAiB,SAACpG,EAAgBC,GAC9B,MAA+B,KAA3BsF,EAAKY,MAAM5D,KAAKiE,SACkB,KAA7BjB,EAAKY,MAAMnG,OAAOwG,SAAiBC,MAAMzG,KACZ,KAA7BuF,EAAKY,MAAMlG,OAAOuG,SAAiBC,MAAMxG,MAtDlD,IAAIyG,EAAU,IAAI1B,KAFa,OAG/B0B,EAAQC,YAAYD,EAAQxB,cAAc,GAC1CK,EAAKY,MAAQ,CACT5D,KAAM,GACNjC,OAAQ,OACRwE,IAAK4B,EACLA,QAASA,EACT1G,OAAQ,GACRC,OAAQ,GACRsG,OAAO,GAXoBhB,wEA4DzB,IAAAqB,EAAAjH,KAEN,OACI2B,EAAAC,EAAAC,cAACqF,EAAA,EAAD,CAAOC,MAAM,EAAMC,OAAQpH,KAAK0B,MAAM2F,SAClC1F,EAAAC,EAAAC,cAACyF,EAAA,EAAD,CAAOH,KAAMnH,KAAKwG,MAAMI,MAAOW,QAAQ,UAAvC,yDACA5F,EAAAC,EAAAC,cAACqF,EAAA,EAAMM,OAAP,CAAcC,aAAW,EAACxF,MAAO,CAACyF,WAAY,YAC1C/F,EAAAC,EAAAC,cAACqF,EAAA,EAAMS,MAAP,CAAa1F,MAAO,CAACI,MAAO,UAA5B,cAGJV,EAAAC,EAAAC,cAACqF,EAAA,EAAMU,KAAP,KACIjG,EAAAC,EAAAC,cAAA,qBACAF,EAAAC,EAAAC,cAACgG,EAAA,EAAD,CAAYC,UAAU,QAClBnG,EAAAC,EAAAC,cAACkG,EAAA,EAAD,CACIC,YAAY,OACZ3D,MAAOrE,KAAKwG,MAAM5D,KAClBqF,SAAU,SAAChC,GAAD,OAAgBgB,EAAKjB,gBAAgBC,EAAO,YAI9DtE,EAAAC,EAAAC,cAAA,yBACAF,EAAAC,EAAAC,cAAA,OAAKiG,UAAU,qBAAqB7F,MAAO,CAACiG,aAAc,SACtDvG,EAAAC,EAAAC,cAACsG,EAAA,EAAD,CAAaL,UAAU,QACnBnG,EAAAC,EAAAC,cAACuG,EAAA,EAAD,CACIb,QAA+B,SAAtBvH,KAAKwG,MAAM7F,OAAoB,UAAY,kBACpD+B,QAAS,kBAAMuE,EAAKd,SAAS,CAACxF,OAAQ,WAF1C,QAMAgB,EAAAC,EAAAC,cAACuG,EAAA,EAAD,CACIb,QAA+B,WAAtBvH,KAAKwG,MAAM7F,OAAsB,UAAY,kBACtD+B,QAAS,kBAAMuE,EAAKd,SAAS,CAACxF,OAAQ,aAF1C,WASRgB,EAAAC,EAAAC,cAAA,8BACAF,EAAAC,EAAAC,cAAA,OAAKiG,UAAU,sBAAsB7F,MAAO,CAACiG,aAAc,SACvDvG,EAAAC,EAAAC,cAACwG,EAAAzG,EAAD,CACIyC,MAAOrE,KAAKwG,MAAMrB,IAClB8C,SAAU,SAACK,GAAD,OAAUrB,EAAKd,SAAS,CAAChB,IAAKmD,KACxCvB,QAAS/G,KAAKwG,MAAMO,QACpBwB,QAAS,IAAIlD,KAAK,KAAM,EAAG,GAC3BmD,kBAAkB,EAClBC,UAAW,KACXX,UAAU,2BAIlBnG,EAAAC,EAAAC,cAAA,yBACAF,EAAAC,EAAAC,cAACgG,EAAA,EAAD,CAAYC,UAAU,QAClBnG,EAAAC,EAAAC,cAACkG,EAAA,EAAD,CACIC,YAAY,WACZ3D,MAAOrE,KAAKwG,MAAMnG,OAClB4H,SAAU,SAAChC,GAAD,OAAgBgB,EAAKjB,gBAAgBC,EAAO,aAE1DtE,EAAAC,EAAAC,cAACgG,EAAA,EAAWa,OAAZ,KACI/G,EAAAC,EAAAC,cAACgG,EAAA,EAAWc,KAAZ,CAAiBhF,GAAG,gBAApB,QAIRhC,EAAAC,EAAAC,cAAA,qBACAF,EAAAC,EAAAC,cAACgG,EAAA,EAAD,CAAYC,UAAU,QAClBnG,EAAAC,EAAAC,cAACkG,EAAA,EAAD,CACIC,YAAY,OACZ3D,MAAOrE,KAAKwG,MAAMlG,OAClB2H,SAAU,SAAChC,GAAD,OAAgBgB,EAAKjB,gBAAgBC,EAAO,aAE1DtE,EAAAC,EAAAC,cAACgG,EAAA,EAAWa,OAAZ,KACI/G,EAAAC,EAAAC,cAACgG,EAAA,EAAWc,KAAZ,CAAiBhF,GAAG,gBAApB,SAMZhC,EAAAC,EAAAC,cAACqF,EAAA,EAAM0B,OAAP,KACIjH,EAAAC,EAAAC,cAACuG,EAAA,EAAD,CAAQb,QAAQ,oBAAoB7E,QAAS1C,KAAK0B,MAAM2F,SAAxD,UACA1F,EAAAC,EAAAC,cAACuG,EAAA,EAAD,CAAQb,QAAQ,kBAAkB7E,QAAS1C,KAAKsG,cAAhD,qBA3IGuC,aCqFRvJ,6MAnFXkH,MAAQ,CACJlE,QAAS,GACTwG,cAAc,KAGlBC,qBAAuB,WACrBnD,EAAKO,SAAS,CAAC2C,cAAc,OAG/BE,iBAAmB,SAACC,GAChBrD,EAAKO,SAAS,SAAAK,GACV,IAAM0C,EAAa1C,EAAMlE,QAEzB,OADA4G,EAAW3H,KAAK0H,GAEZ,CACI3G,QAAS4G,EACTJ,cAAc,QAM9BK,oBAAsB,SAACvI,GACfgF,EAAKY,MAAMlE,QAAQzB,OAASD,GAC5BwI,uBAAa,CACTC,MAAK,SAAAC,OAAY1D,EAAKY,MAAMlE,QAAQ1B,GAAkBgC,MACtD2G,QAAS,gBACTC,QAAS,CACL,CACIC,MAAO,MACP/G,QAAS,cAEb,CACI+G,MAAO,KACP/G,QAAS,WACLkD,EAAKO,SAAS,SAAAK,GACV,IAAM0C,EAAa1C,EAAMlE,QAEzB,OADA4G,EAAWQ,OAAO9I,EAAO,GAErB,CACI0B,QAAS4G,mFAWpC,IAAAjC,EAAAjH,KACL,OACG2B,EAAAC,EAAAC,cAAA,OAAKiG,UAAW6B,IAAQrK,KAEnBU,KAAKwG,MAAMsC,aACRnH,EAAAC,EAAAC,cAAC+H,EAAD,CACIvC,QAASrH,KAAK+I,qBACdrC,SAAU,SAACuC,GAAD,OAAoBhC,EAAK+B,iBAAiBC,MAE1D,KACDjJ,KAAKwG,MAAMlE,QAAQzB,OAAS,GAAKc,EAAAC,EAAAC,cAACgI,EAAD,CAAavH,QAAStC,KAAKwG,MAAMlE,QAASK,SAAU,SAAC/B,GAAD,OAAmBqG,EAAKkC,oBAAoBvI,MAClIe,EAAAC,EAAAC,cAACuG,EAAA,EAAD,CACIb,QAAQ,UACR7E,QAAS,kBAAMuE,EAAKd,SAAS,CAAC2C,cAAc,KAC5C7G,MAAO,CAACE,UAAW,KAHvB,wBAOAR,EAAAC,EAAAC,cAACiI,EAAD,CAAUxH,QAAStC,KAAKwG,MAAMlE,UAC9BX,EAAAC,EAAAC,cAAA,OAAKI,MAAO,CAACC,MAAO,MAAO6H,UAAW,SAAU3H,gBAAiB,OAAQkB,OAAQ,SAC7E3B,EAAAC,EAAAC,cAAA,UAAIF,EAAAC,EAAAC,cAAA,QAAMI,MAAO,CAACI,MAAO,YAArB,aAAJ,+FACAV,EAAAC,EAAAC,cAAA,UAAIF,EAAAC,EAAAC,cAAA,QAAMI,MAAO,CAACI,MAAO,YAArB,UAAJ,iDACAV,EAAAC,EAAAC,cAAA,UAAIF,EAAAC,EAAAC,cAAA,QAAMI,MAAO,CAACI,MAAO,YAArB,YAAJ,+FACAV,EAAAC,EAAAC,cAAA,UAAIF,EAAAC,EAAAC,cAAA,QAAMI,MAAO,CAACI,MAAO,YAArB,SAAJ,uGACAV,EAAAC,EAAAC,cAAA,UAAIF,EAAAC,EAAAC,cAAA,QAAMI,MAAO,CAACI,MAAO,YAArB,kBAAJ,iIA5EDwG,aCbEmB,QACW,cAA7BC,OAAOC,SAASC,UAEe,UAA7BF,OAAOC,SAASC,UAEhBF,OAAOC,SAASC,SAASC,MACvB,2DCXNC,IAASC,OAAO3I,EAAAC,EAAAC,cAAC0I,EAAD,MAASC,SAASC,eAAe,SDkI3C,kBAAmBC,WACrBA,UAAUC,cAAcC,MAAMC,KAAK,SAAAC,GACjCA,EAAaC","file":"static/js/main.9c094602.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"App\":\"App_App__3Ujdi\",\"AddButton\":\"App_AddButton__LZnsM\"};","interface isoBMIValue {\r\n age: number;\r\n normal: number;\r\n overweight: number;\r\n obeseClassI: number;\r\n obeseClassII: number;\r\n}\r\n\r\nclass isoBmiValues implements isoBMIValue{\r\n age: number;\r\n normal: number;\r\n overweight: number;\r\n obeseClassI: number;\r\n obeseClassII: number;\r\n constructor(age: number, normal: number,overweight: number, obeseClassI: number, obeseClassII: number) {\r\n this.age = age;\r\n this.normal = normal;\r\n this.overweight = overweight;\r\n this.obeseClassI = obeseClassI;\r\n this.obeseClassII = obeseClassII;\r\n }\r\n}\r\n\r\nexport default class BMIManager {\r\n static readonly isoBmiValuesGirls = [\r\n new isoBmiValues(2,15, 18.1,19.8,21.1),\r\n new isoBmiValues(3,14.6, 17.6,19.4,20.8),\r\n new isoBmiValues(4,14.2, 17.3,19.2,20.7),\r\n new isoBmiValues(5,14, 17.2,19.2,20.9),\r\n new isoBmiValues(6,13.8, 17.3,19.6,21.6),\r\n new isoBmiValues(7,13.8, 17.7,20.3,22.9),\r\n new isoBmiValues(8,14, 18.2,21.4,24.5),\r\n new isoBmiValues(9,14.2, 19,22.6,26.3),\r\n new isoBmiValues(10,14.6, 19.8,24,28.3),\r\n new isoBmiValues(11,15, 20.7,25.2,30.1),\r\n new isoBmiValues(12,15.6, 21.6,26.5,31.7),\r\n new isoBmiValues(13,16.2, 22.4,27.5,32.9),\r\n new isoBmiValues(14,16.9, 23.2,28.4,33.8),\r\n new isoBmiValues(15,17.4, 23.8,29,34.2),\r\n new isoBmiValues(16,17.9, 24.2,29.3,34.5),\r\n new isoBmiValues(17,18.2, 24.8,29.7,34.8),\r\n new isoBmiValues(18,18.5, 25,30,35)\r\n ];\r\n static readonly isoBmiValuesBoys = [\r\n new isoBmiValues(2,15, 18.2,20,21.2),\r\n new isoBmiValues(3,14.8, 17.8,19.5,20.8),\r\n new isoBmiValues(4,14.6, 17.6,19.2,20.6),\r\n new isoBmiValues(5,14.3, 17.4,19.2,20.8),\r\n new isoBmiValues(6,14.1, 17.5,19.8,21.7),\r\n new isoBmiValues(7,14.1, 17.9,20.5,23.1),\r\n new isoBmiValues(8,14.2, 18.4,21.5,24.6),\r\n new isoBmiValues(9,14.4, 19,22.8,26.3),\r\n new isoBmiValues(10,14.8, 19.8,24,28.3),\r\n new isoBmiValues(11,15, 20.4,25.1,30),\r\n new isoBmiValues(12,15.3, 21.2,26,31.2),\r\n new isoBmiValues(13,15.8, 21.9,26.8,32.2),\r\n new isoBmiValues(14,16.4, 22.5,27.6,33),\r\n new isoBmiValues(15,17, 23.2,28.3,33.6),\r\n new isoBmiValues(16,17.5, 23.9,28.9,34),\r\n new isoBmiValues(17,18, 24.4,29.4,34.4),\r\n new isoBmiValues(18,18.5, 25,30,35)\r\n ];\r\n\r\n static calculateBMI = (height: number, weight: number) => {\r\n height = height / 100;\r\n let bmi = weight / (height * height);\r\n return Math.round(bmi * 10) / 10;\r\n };\r\n\r\n static bmiDescription = (bmi: number, gender: string, age: number) => {\r\n let index = (age - 2);\r\n if (age > 18) {\r\n index = BMIManager.isoBmiValuesBoys.length - 1;\r\n } else if (age < 2) {\r\n index = 0;\r\n }\r\n let isoBmiValue = gender === 'male' ? BMIManager.isoBmiValuesBoys[index] : BMIManager.isoBmiValuesGirls[index];\r\n if (bmi >= isoBmiValue.obeseClassII) return {desc: 'Alvorlig fedme', descColor: '#FF291C'};\r\n else if (bmi >= isoBmiValue.obeseClassI) return {desc: 'Fedme', descColor: '#FFAA23'};\r\n else if (bmi >= isoBmiValue.overweight) return {desc: 'Overvekt', descColor: '#fff400'};\r\n else if (bmi >= isoBmiValue.normal) return {desc: 'Normal', descColor: '#17FF64'};\r\n else return {desc: 'Undervekt', descColor: '#58baff'};\r\n };\r\n\r\n static getGraphData = (max: number) => {\r\n const size = BMIManager.isoBmiValuesBoys.length;\r\n let data = [];\r\n for (let i = 0; i < size; i++) {\r\n let normal = ((BMIManager.isoBmiValuesBoys[i].normal + BMIManager.isoBmiValuesGirls[i].normal)/2);\r\n let overWeight = ((BMIManager.isoBmiValuesBoys[i].overweight + BMIManager.isoBmiValuesGirls[i].overweight)/2);\r\n let obeseClassI = ((BMIManager.isoBmiValuesBoys[i].obeseClassI + BMIManager.isoBmiValuesGirls[i].obeseClassI)/2);\r\n let obeseClassII = ((BMIManager.isoBmiValuesBoys[i].obeseClassII + BMIManager.isoBmiValuesGirls[i].obeseClassII)/2);\r\n data.push({\r\n age: BMIManager.isoBmiValuesBoys[i].age,\r\n normal: Math.round(normal * 10) / 10,\r\n overweight: [Math.round(normal * 10) / 10, Math.round(overWeight * 10) / 10],\r\n obeseClassI: [Math.round(overWeight * 10) / 10, Math.round(obeseClassI * 10) / 10],\r\n obeseClassII: [Math.round(obeseClassI * 10) / 10, Math.round(obeseClassII * 10) / 10],\r\n obeseClassIII: [Math.round(obeseClassII * 10) / 10, Math.round(max * 10) / 10]\r\n });\r\n }\r\n return data;\r\n };\r\n}\r\n\r\n","import React from 'react';\r\nimport {Table} from 'react-bootstrap';\r\n\r\nimport bmiManager from '../../utility/bmiManager';\r\n\r\ninterface iMembersListProps {\r\n members: any[],\r\n onDelete: (args0: number) => void\r\n}\r\nconst membersList = (props: iMembersListProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.members.map((item, index) => {\r\n return(\r\n props.onDelete(index)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
NavnKjønnAlderHøydeVektKMI
{item.name}{item.gender === 'male' ? 'Gutt' : 'Jente'}{item.age + ' år'}{item.height + ' cm'}{item.weight + ' kg'}{item.bmi}
\r\n );\r\n};\r\n\r\nexport default membersList;","import React from 'react';\r\nimport {\r\n Area,\r\n AreaChart,\r\n CartesianGrid,\r\n Label,\r\n ReferenceDot, Tooltip,\r\n XAxis,\r\n YAxis,\r\n ResponsiveContainer\r\n} from 'recharts';\r\n\r\nimport bmiManager from \"../../utility/bmiManager\";\r\nimport {Member} from \"../../App\";\r\n\r\ninterface IBMIChartProps {\r\n members: Member[];\r\n}\r\n\r\nconst getMaxMinValue = (members: Member[]) => {\r\n let max = 46;\r\n let min = 8;\r\n for (let i = 0; i < members.length; i++) {\r\n if (members[i].bmi > max) max = Math.ceil(members[i].bmi);\r\n else if (members[i].bmi < min) min = Math.floor(members[i].bmi);\r\n }\r\n\r\n let yTicks = [];\r\n for (let i = min; i <= max; i+=2){\r\n yTicks.push(i);\r\n }\r\n\r\n return {min, max, yTicks}\r\n};\r\n\r\nconst BMIChart = (props: IBMIChartProps) => {\r\n let {min, max, yTicks} = getMaxMinValue(props.members);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.members.map((item: Member, index: number) => {\r\n return (\r\n \r\n {\r\n )\r\n })}\r\n \r\n \r\n )\r\n};\r\n\r\nexport default BMIChart;","class DateManager {\r\n static calculateAge = (dob: any) => {\r\n const today = new Date();\r\n const birthDate = dob;\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const month = today.getMonth() - birthDate.getMonth();\r\n if (month < -6 || (month === 6 && today.getDate() < birthDate.getDate())){\r\n age--;\r\n }\r\n return age;\r\n };\r\n}\r\n\r\nexport default DateManager;","import React, {Component} from 'react';\r\nimport {Modal, Button, InputGroup, FormControl, ButtonGroup, Alert} from 'react-bootstrap'\r\nimport DatePicker from 'react-date-picker';\r\n\r\nimport './CustomDatePicker.css';\r\nimport {Member} from '../../App';\r\nimport bmiManager from '../../utility/bmiManager';\r\nimport dateManager from '../../utility/dateManager';\r\n\r\ninterface IAddModalProps {\r\n onClose: () => void\r\n onSubmit: (arg0: Member) => void\r\n}\r\n\r\ninterface IAddModalState {\r\n name: string,\r\n gender: string,\r\n dob: Date | Date[],\r\n maxDate: Date,\r\n height: string,\r\n weight: string,\r\n error: boolean\r\n}\r\n\r\nclass AddModal extends Component {\r\n constructor(props: IAddModalProps) {\r\n super(props);\r\n let maxDate = new Date();\r\n maxDate.setFullYear(maxDate.getFullYear()-2);\r\n this.state = {\r\n name: '',\r\n gender: 'male',\r\n dob: maxDate,\r\n maxDate: maxDate,\r\n height: '',\r\n weight: '',\r\n error: false\r\n };\r\n }\r\n\r\n onChangeHandler = (event: any, input: string) => {\r\n switch (input) {\r\n case 'Name':\r\n this.setState({name: event.target.value});\r\n break;\r\n case 'Gender':\r\n this.setState({gender: event.target.value});\r\n break;\r\n case 'Height':\r\n this.setState({height: event.target.value.replace(/\\D/,'')});\r\n break;\r\n case 'Weight':\r\n this.setState({weight: event.target.value.replace(/\\D/,'')});\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n onAddHandler = () => {\r\n const height = parseFloat(this.state.height);\r\n const weight = parseFloat(this.state.weight);\r\n\r\n if (this.validateInputs(height, weight)) {\r\n this.props.onSubmit({\r\n name: this.state.name,\r\n gender: this.state.gender,\r\n age: dateManager.calculateAge(this.state.dob),\r\n height: height,\r\n weight: weight,\r\n bmi: bmiManager.calculateBMI(height, weight)\r\n });\r\n } else {\r\n this.setState({error: true});\r\n }\r\n\r\n };\r\n\r\n validateInputs = (height: number, weight: number): boolean => {\r\n if (this.state.name.trim() === '') return false;\r\n else if (this.state.height.trim() === '' || isNaN(height)) return false;\r\n else if (this.state.weight.trim() === '' || isNaN(weight)) return false;\r\n return true;\r\n };\r\n\r\n render () {\r\n // @ts-ignore\r\n return (\r\n \r\n Noen verdier er ikke gyldige. Endre og prøv igjen.\r\n \r\n Ny Person\r\n \r\n\r\n \r\n \r\n \r\n this.onChangeHandler(event, 'Name')}\r\n />\r\n \r\n\r\n \r\n
\r\n \r\n this.setState({gender: 'male'})}\r\n >\r\n Gutt\r\n \r\n this.setState({gender: 'female'})}\r\n >\r\n Jente\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n this.setState({dob: date})}\r\n maxDate={this.state.maxDate}\r\n minDate={new Date(1900, 1, 1)}\r\n showLeadingZeros={true}\r\n clearIcon={null}\r\n className='customDatePickerWidth'\r\n />\r\n
\r\n\r\n \r\n \r\n this.onChangeHandler(event, 'Height')}\r\n />\r\n \r\n cm\r\n \r\n \r\n\r\n \r\n \r\n this.onChangeHandler(event, 'Weight')}\r\n />\r\n \r\n kg\r\n \r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default AddModal;","import React, {Component} from 'react';\r\nimport classes from './App.module.css';\r\nimport {Button} from 'react-bootstrap';\r\n\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport 'react-confirm-alert/src/react-confirm-alert.css';\r\n\r\nimport MembersList from './components/MembersList/MembersList';\r\nimport BMIChart from './components/BMIChart/BMIChart';\r\nimport AddModal from './components/AddModal/AddModal';\r\n\r\nexport interface Member {\r\n name: string;\r\n gender: string;\r\n age: number;\r\n height: number;\r\n weight: number;\r\n bmi: number;\r\n}\r\n\r\ninterface State {\r\n members: Member[];\r\n showAddModal: boolean;\r\n}\r\n\r\nclass App extends Component {\r\n state = {\r\n members: [],\r\n showAddModal: false,\r\n };\r\n\r\n closeAddModalHandler = () => {\r\n this.setState({showAddModal: false});\r\n };\r\n\r\n addMemberHandler = (member: Member) => {\r\n this.setState(state => {\r\n const newMembers = state.members;\r\n newMembers.push(member);\r\n return (\r\n {\r\n members: newMembers,\r\n showAddModal: false\r\n }\r\n )\r\n })\r\n };\r\n\r\n deleteMemberHandler = (index: number) => {\r\n if (this.state.members.length > index) {\r\n confirmAlert({\r\n title: `Fjern ${(this.state.members[index] as Member).name}`,\r\n message: 'Er du sikker?',\r\n buttons: [\r\n {\r\n label: 'Nei',\r\n onClick: () => {}\r\n },\r\n {\r\n label: 'Ja',\r\n onClick: () => {\r\n this.setState(state => {\r\n const newMembers = state.members;\r\n newMembers.splice(index, 1);\r\n return (\r\n {\r\n members: newMembers\r\n }\r\n )\r\n })\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n return(\r\n
\r\n\r\n {this.state.showAddModal ?\r\n this.addMemberHandler(member)}\r\n />\r\n : null}\r\n {this.state.members.length > 0 && this.deleteMemberHandler(index)}/>}\r\n this.setState({showAddModal: true})}\r\n style={{marginTop: 10}}\r\n >\r\n + Legg til ny person\r\n \r\n \r\n
\r\n
Undervekt - Dine verdier ligger under normalområdet, og ny måling anbefales om 2-3 måneder.
\r\n
Normal - Dine verdier er innenfor normalområdet.
\r\n
Overvekt - Dine verdier er litt over normalområdet, og ny måling anbefales om 2-3 måneder.
\r\n
Fedme - Dine verdier ligger over normalområdet. Kontakt med helsesykepleier eller fastlege anbefales.
\r\n
Alvorlig fedme - Dine verdier ligger godt over grensen for normalområdet. Kontakt med helsesykepleier eller fastlege anbefales.
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\n// @ts-ignore\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}